import time  # 导入时间模块，用来显示时间
import form_say_tools as fst  # 导入项目工具模块
import logging as log  # 导入logging模块，用来显示日志
import shelve as sl  # 导入shelve模块，用来存储数据

log.basicConfig(level=log.INFO, format="%(message)s")  # 创建一个logging类实例
log = log.getLogger("")  # 设置实例名

""" 关于SAY项目的数据编辑模块"""


def show_all():
    count = 1
    with sl.open("data") as data:
        fst.print_line(15)
        for i in data:
            print("[{0}]  {1:<10} : {2}".format(count, i, data[i]))
            count = count + 1
        fst.print_line(15)


def show_one(name: str):
    with sl.open("data") as data:
        if name in data:
            fst.print_line(15)
            print(">> {0} : {1}".format(name, data[name]))
            fst.print_line(15)
        else:
            fst.print_line(15)
            log.error(f"错误: {name} 不在数据中...")
            fst.print_line(15)


def add_data(name: str, in_data: any, ins_time: bool = False):
    with sl.open("data") as data:
        the_time = time.strftime("%Y/%m/%d %H:%M")
        if ins_time:
            if name in data:
                _add_data = data[name]
                _add_data.append(f"{in_data}  ————{the_time}")
                data[name] = _add_data
                log.info("数据已增加: " + str(data[name]))
            else:
                data[name] = [f"{in_data}  ————{the_time}"]
                log.info("数据已初始化并增加: " + str(data[name]))
        else:
            if name in data:
                _add_data = data[name]
                _add_data.append(in_data)
                data[name] = _add_data
                log.info("数据已增加: " + str(data[name]))
            else:
                data[name] = [in_data]
                log.info("数据已初始化并增加: " + str(data[name]))


def data_del(name: str):
    with sl.open("data") as data:
        if name in data:
            log.info("数据已删除: " + str(data[name]))
            del data[name]
        else:
            log.error(f"错误: {name} 不在数据中...")


def data_del_one(name: str, value_index: int):
    with sl.open("data") as data:
        if name in data:
            value_list = data[name]
            if len(value_list):
                del value_list[value_index]
                data[name] = value_list
            else:
                log.error(f"错误: 要删除的数据为空列表")


# 数据已经写入
name_list = ['真真', '王世浩', '程立勇', '张庭畅', '孟祥乐', '小陈', '小撒', '哈哈哈', '时间']
data_list = ['我一直喜欢你，不为别的，你是我的回忆', '你很活，就是时常会情绪低落，希望你以乐观的面对生活，加油', '大哥，你是个很强大的人，但咋就那么怂呢？', '好兄弟，有事还是得你靠谱',
             '阿瑶，你跟他们比还稳重点，有时候也很跳脱，但是我相信你是哪个出了事知道该怎么做的', '加油！', '好好学习，天天向上！', '红红火火恍恍惚惚', '2022/5/15']
